package com.tlgen.orm.param;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.ArrayList;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class FieldParam {
    // 原有字段
    private Class<?> type;      // Java类型（如String.class）
    private String name;        // 字段名
    private Object value;       // 基础值或占位符

    // 新增字段支持嵌套
    private DataStructure dataStructure; // 数据结构类型
    private List<FieldParam> children = new ArrayList<>(); // 子节点

    public FieldParam(Class<?> type, String name, Object value) {
        this.type = type;
        this.name = name;
        this.value = value;
    }

    public enum DataStructure {
        PRIMITIVE,  // 基础值（字符串/数字/布尔）
        OBJECT,     // JSON对象
        ARRAY       // JSON数组
    }

}